package aspect.example;
import aspect.audio.AudioClip;
import aspect.audio.SoundPlayer;
import aspect.util.Angles;
import static aspect.core.AspectLauncher.*;
import static aspect.core.AspectRenderer.*;
import aspect.entity.Player;
import aspect.entity.behavior.Behavior;
import aspect.event.KeyEvent;
import static aspect.resources.Resources.*;
import aspect.util.Vector3;
import aspect.render.Material;
import aspect.render.ViewModel;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.lwjgl.LWJGLException;
import org.lwjgl.util.WaveData;
import org.lwjgl.input.Keyboard;
public class SoundDemo extends Behavior {
private ViewModel cube;
private Player player;
private SoundPlayer sound;
public static void main(String[] args) {
run(800, 600, false, 60, new SoundDemo());
}
@Override
public void onAdd() {
Material material = loadMaterial(new File("textures/tex.jpg"));
cube = box(material, 1, 1, 1);
player = new Player(Vector3.zero());
try {
WaveData data = WaveData.create(new BufferedInputStream(new FileInputStream("sound/test.wav")));
if (data == null) {
throw new LWJGLException("data == null");
}
sound = new SoundPlayer(new AudioClip(data));
} catch (LWJGLException | FileNotFoundException ex) {
Logger.getLogger(SoundDemo.class.getName()).log(Level.SEVERE, null, ex);
}
addKeyListener(this);
}
@Override
public void keyEvent(KeyEvent evt) {
if (evt.key == Keyboard.KEY_F && evt.type) {
sound.play();
}
}
@Override
public void update() {
player.update();
}
@Override
public void render() {
if (Keyboard.isKeyDown(Keyboard.KEY_R)) {
draw3D(cube, Vector3.zero(), Angles.zero());
}
}
}